Members
Overall Objectives
Research Program
Application Domains
New Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
Dissemination
Bibliography
XML PDF e-pub
PDF e-Pub


Section: New Software and Platforms

The Why3 system

Participants : Jean-Christophe Filliâtre [contact] , Claude Marché, Guillaume Melquiond, Andrei Paskevich.

Criteria for Software Self-Assessment: A-3-up, SO-4, SM-4, EM-4, SDL-5, OC-4.(self-evaluation following the guidelines (http://www.inria.fr/content/download/11783/409665/version/4/file/SoftwareCriteria-V2-CE.pdf ) of the Software Working Group of Inria Evaluation Committee ( http://www.inria.fr/institut/organisation/instances/commission-d-evaluation ))

Why3 is the next generation of Why. Why3 clearly separates the purely logical specification part from generation of verification conditions for programs. It features a rich library of proof task transformations that can be chained to produce a suitable input for a large set of theorem provers, including SMT solvers, TPTP provers, as well as interactive proof assistants.

It is distributed as open source, under GPL license, at http://why3.lri.fr/ . It is also distributed as part of major Linux distributions and in the OPAM packaging system http://opam.ocaml.org/packages/why3/why3.0.85/ .

Why3 is used as back-end of our own tools Krakatoa and Jessie, but also as back-end of the GNATprove tool (Adacore company), and of the WP plugin of Frama-C. Why3 has been used to develop and prove a significant part of the programs of our team gallery http://proval.lri.fr/gallery/index.en.html , and used for teaching (e.g., at the Master Parisien de Recherche en Informatique).

Why3 is used by other academic research groups, e.g. within the CertiCrypt/EasyCrypt project (http://easycrypt.gforge.inria.fr/ ) for certifying cryptographic programs. The Why3 web site http://why3.lri.fr lists a few other works done by external researchers and relying on the use of Why3.

Two versions were released in 2014: 0.83 released in March and 0.84 in September, plus a few days later a bugfix version 0.85.